Add forward-plus lighting planner and scene integration (Statement 13) - #13
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Motivation
Description
engine/render/lighting.hpp+engine/render/lighting.cppthat defines input structs, GPU-packed output structs, validation helpers,LightingSelectionConfig,LightingFrameData, diagnostics, andbuild_forward_plus_frame_datawhich implements a practical forward-plus strategy (camera-relative ranking of point lights, per-view caps, per-object selection).engine/scene/scene.hpp/scene.cppwithLightComponent::casts_shadows, per-renderable lighting metadata (lit,albedo_tint,emissive_color,emissive_intensity,highlighted), scene-level lighting settings (SceneLightingSettings), andcollect_highlighted_renderables+ lighting settings accessors.engine/shell/main.cppto build a stylized validation setup (directional + many point lights, emissive/highlighted renderables, fog/bloom settings) and callbuild_forward_plus_frame_dataeach frame to produce deterministic frame data (ready for GPU upload in follow-ups).tests/render/lighting_pipeline_tests.cppthat validate light ranking/capping, per-object light-list limits, diagnostic counts, and settings validation; updatedtests/scene/scene_tests.cppto cover highlight/emissive plumbing; updatedCMakeLists.txtand docs (docs/rendering.md,engine/render/README.md) to register tests and describe architecture and deferred work.Testing
git diff --checkpassed.render_lighting_pipeline_testsand CTest registration forunit.renderer.lighting_pipeline; the test sourcetests/render/lighting_pipeline_tests.cppperforms deterministic assertions on planner behavior.cmake --preset linux-debug, but full configure/build/test execution is blocked in this environment due to missing third-party SDK roots (SDL3/bgfx), so the new unit test has not been executed here; it is expected to succeed when the project dependencies are available.gitcommit; functional execution of unit tests requires resolved third-party dependencies.Codex Task